home *** CD-ROM | disk | FTP | other *** search
/ Floppyshop 2 / Floppyshop - 2.zip / Floppyshop - 2.iso / art&graf.ix / art-4956 / looker / looker.doc next >
Text File  |  1987-04-21  |  27KB  |  605 lines

  1. L O O K E R   I m a g e   P r o c e s s o r  Copyright 1987 by Frederick Hawkins
  2.  
  3.   LOOKER may be freely distributed as long as this document accompanies it.  
  4.  
  5. ________ Q U I C K   R E F E R E N C E __________________________________
  6.  
  7. File
  8.     L    LOAD  .PI1, .PI3, .DTH
  9.     S    SAVE  .PI3, .DTH
  10.  
  11. Palette
  12.     [Clr Home]    START a new palette list.
  13.      [Insert]    ADD to a palette list.
  14.      [Undo]    DISCARD palette list.
  15.      [Up,Down]    SELECT a color to change.
  16.      [Right]    LIGHTEN the halftone of a palette color or palette list.
  17.      [Left]    DARKEN the halftone.
  18.      [1 to 9]   Set INCREMENT used by Lighten and Darken.
  19.     N    Show a NEGATIVE view of a color.
  20.     R    RESET palette to default values.
  21.     Z    ZERO all other palette values.
  22.  
  23. Transform
  24.     A    Show ALTERNATIVE settings.
  25.     C    COPY current settings to ALTERNATE.
  26.     D    DITHER.
  27.     G    GRAY.
  28.     H    HALFTONE.
  29.     T    Change Dither TYPE.
  30.     X    MEZZOTINT.
  31.     [0 zero]    Perform TRANSFORM.
  32.  
  33. Buffers
  34.       [cr]    Toggle between MAIN and WORK.
  35.     K    View KEEP buffer.
  36.        [*]    ERASE Keep buffer.
  37.        [+]    SET Keep with Work buffer.
  38.        [-]    CLEAR Keep with Work buffer.
  39.        [/]    STRIKE last Keep buffer change.
  40.  
  41. System
  42.        [#]    Load TEST pattern.
  43.       [Help]    HELP.
  44.     I       INSTALL or change Dither tables.
  45.     Q    QUIT.
  46.     M    MAGNIFY.
  47.     V    VERSION.
  48.        [&]    Trap to SID.
  49.  
  50.  
  51. ________C O M M A N D S    alphabetical_________________________________
  52.  
  53. [Clr Home]    START a new palette list.    Palette
  54. [Help]        HELP.                System
  55. [Insert]    ADD to a palette list.        Palette
  56. [Left]        DARKEN the halftone.        Palette
  57. [Right]        LIGHTEN a color or list.    Palette
  58. [Undo]        DISCARD palette list.        Palette
  59. [Up,Down]    SELECT a color to change.    Palette
  60. [/]        STRIKE last Keep buffer change.    Buffer
  61. [-]        CLEAR Keep with Work buffer.    Buffer
  62. [+]        SET Keep with Work buffer.    Buffer
  63. [*]        ERASE Keep buffer.        Buffer
  64. [&]        Trap to SID.            System
  65. [#]        Load TEST pattern.        System
  66. [cr]        Toggle between MAIN and WORK.    Buffer
  67. [0 zero]    Perform TRANSFORM.        Transform
  68. [1 to 9]       Set INCREMENT.            Palette
  69. A        Show ALTERNATIVE settings.    Transform
  70. C        COPY settings to ALTERNATE.    Transform
  71. D        DITHER.                Transform
  72. G        GRAY.                Transform
  73. H        HALFTONE.            Transform
  74. I           INSTALL Dither tables.        System
  75. K        View KEEP buffer.        Buffer
  76. L        LOAD a .PI1, .PI3, .DTH file.    File
  77. M        MAGNIFY.            System
  78. N        Show NEGATIVE.            Palette
  79. Q        QUIT.                System
  80. R        RESET palette to default.    Palette
  81. S        SAVE a .PI3, .DTH file         File
  82. T        Change Dither TYPE.        Transform
  83. V        VERSION.            System
  84. X        MEZZOTINT.            Transform
  85. Z        ZERO all other palette values.    Palette
  86.  
  87. WHAT? 
  88.     LOOKER interactively transforms low resolutiooon image to a high
  89.     resolution image.
  90.  
  91. BUTS
  92.     No GEM, no alerts, no buttons, no menus, no C, no PASCAL, no MODULA2,
  93.     not for color systems (not enforced), not a slide show, no mouse, not
  94.     a well-behaved application, not a replacement for TINYSTUF or PICSW6
  95.     or GRAFCON.
  96.  
  97. NOT YET
  98.     Medium resolution load and transforms, rotate, zoom, mouse draw/erase,
  99.     high resolution load as pseudo-low resolution, John Brochu's any-type
  100.     file load (thanks, John!), printing, image placement, disk directory,
  101.     RLE compression in memory, frame transforms.
  102.  
  103. ________F O R E G R O U N D _______________________________________________
  104.  
  105. LOOKER can selectively convert each individual color in a low resolution image.
  106. Transforms include a middle gray, a mezzotint, a five-level halftone and eight
  107. preset dithering patterns of 64 gray levels.  These dithering patterns may be
  108. interactively changed, saved and loaded.  Entire colors may be eliminated or
  109. set to black.
  110.  
  111. The high resolution output file may be just the default transformation.  Or it
  112. can be assembled from one or more images.  Mixing of halftoning methods
  113. within a single image is possible and encouraged.  Side by side comparisons
  114. of different settings and/or halftone methods are easily accomplished.  Colors
  115. in the original may be linked together so that all may be darkened or lightened
  116. equally, thus holding their relations.
  117.  
  118. ________B A C K G R O U N D _________________________________________________
  119.  
  120. Memory management:
  121. LOOKER maintains two screen buffers, two sub-screen buffers and an input file
  122. block, giving an overhead of 100K.  This version can run out of 220K ramdisk
  123. with NO desk accessories on a 520.  LOOKER takes all of the memory that TOS
  124. gives it and assumes that the memory between it and the desktop screen is 
  125. available.  LOOKER doesn't mess with anything below itself, nor does it use
  126. any interrupts.
  127.  
  128. Inputs in general:
  129. Pressing [Return] or [Enter] will accept the default reply.  A 'n/y' stands
  130. for a simple no/yes -- and the default will have the cursor on it.  Prompts
  131. for filenames and pathnames are separate.  LOOKER doesn't force either case.
  132.  
  133. LOOKER uses the ST's keyboard buffering and pulls keystrokes off until it
  134. gets caught up.  On occasion, LOOKER has crashed when overloading the buffer
  135. (more than 64 characters, I think).  Key sequencing is nevertheless useful.
  136.  
  137. Moving up or down one Palette table entry takes about a second, owing to the
  138. overhead in calculating the micro screen.  Shooting past the desired entry is
  139. a common source of irritation.  An alternative might calculate and keep all
  140. palette views, but the fourfold increase of input data overrhead would make
  141. a 520's ramdisks tediously small.
  142.  
  143. ________K E Y M A P _______________________________________________________
  144.  
  145.     1  2 Tst 4  5  6 Sid 8  9 xfm  -  =  `    HELP    List    (  )  Keep 
  146.     Quit W E Rst Typ Y  U Ins Out P [  ]      List  ^ List    Increm. Keep
  147.   |  | Alt Sav Dit F Gr Hf J  Kp Ld view \    Palette Keys    Increm. Keep
  148.   |   | Zro mez C  V B Ng Mg , .  /|   |                      Increm.
  149.   |    |      spacebar           |   |                         xform  . view
  150.  
  151.  
  152. LOOKER attempts to combine both mnemonic representation -- [H] for halftone --
  153. with a cursor pad 'home' position.  What this means is that your left hand
  154. gets to hunt and peck command keys and your right will stay on the cursor
  155. pad.  Thus, [cr] -- use your thumb -- flips between the main and work screen
  156. and [0] -- use your little finger -- forces the transform.  The KEEP buffer
  157. keys, [/,*,-,+], are modestly inconvenient on purpose.
  158.  
  159.  
  160. ________F I L E ___________________________________________________________
  161.  
  162. LOOKER's file handling is simple in extreme.  Either command prompts you for
  163. a file name and then tries it.  If LOOKER thinks it has an error it will
  164. tell you.  LOOKER has no directory command, so write down filenames before
  165. you fire it up.  In any case, LOOKER is so small, QUITing to the Desktop is
  166. often the fastest memory aid.
  167.  
  168. LOOKER uses the filename's extension to find the appropriate routine.
  169.  
  170.  L    LOAD  filename.PI1 image file to source image buffer.
  171.         A low resolution image file stays resident until you load
  172.         another or cover it with the test pattern (# command).
  173.  
  174.           filename.PI3 image file to the WORK screen.
  175.         A high resolution image file may be loaded directly into the
  176.         WORK buffer.  It is temporary -- you must either move it to
  177.         to the KEEP buffer or take care not to invoke any command that
  178.         changes the WORK buffer.  Useful to load in area masks that
  179.         you have created with DEGAS or whatever.
  180.         
  181.           filename.DTH file to Dither tables.
  182.         Loads a previously created custom dither table.  Also if you
  183.         have tried out INSTALL and hashed up the standard patterns,
  184.         you may load LOOKER.DTH to restore them.
  185.  
  186.  S    SAVE  .PI3 image file from KEEP buffer.
  187.         This is a standard high resolution DEGAS file.
  188.  
  189.           .DTH dither table file.
  190.         
  191.  
  192. ________P A L E T T E _____________________________________________________
  193.  
  194. After loading a .PI1 file, LOOKER creates a palette table (displayed on the
  195. MAIN screen) by converting each color's red-green-blue settings into a single
  196. number between 0 (white) and 3F (black).  This derived value may be freely
  197. changed, so that user may adjust the new monochrome image to the best possible
  198. compromise. All palette commands may be invoked from either the WORK or MAIN
  199. screen, and none change the WORK screen's current display.
  200.  
  201. [Up]    The palette value is SELECTED by moving the cursor up and down
  202. [Down]    the Palette table.  If the MAIN screen is current, you will see
  203.     the cursor move and the MICRO screen change.  The dark parts of
  204.     the MICRO screen are those parts of the source that contain the
  205.     current palette.  (A white palette entry will look like a negative
  206.     of the image.  See [N].)
  207.     
  208. [Left]  The left cursor key will REDUCE the selected palette value.
  209. [Right] The right cursor key will INCREASE the palette value.
  210.  
  211. [1-9]    Number keys will set the adjusting INCREMENT.  Additionally,
  212.     HALFTONE will set it to 11.  Just reset it as needed.
  213.  
  214.  C      COPY the WORK buffer's settings to the Alternate settings.  This
  215.     command also copies the current transformation mode.  
  216.  
  217.  N    Often colors are really highlights.  Sometimes it is useful to
  218.     view them as NEGATIVE.  This command only changes the MICRO
  219.     screen's view of the palette entry, not the transformed result.
  220.     Once made NEGATIVE, you may do as you please.  When you return to
  221.     the palette entry again the display will remember.  To remove the
  222.     NEGATIVE, press [N] again while the proper entry is current.
  223.  
  224.  O    You may OUTLINE the MICRO screen.  This is merely a fallout of 
  225.     internal routines, but what the hell.
  226.  
  227.  R    After fiddling with the palette for a while, the source values
  228.     can get quite shuffled -- light is dark, dark is plaid, etc.
  229.     You may RESET them at any time.
  230.  
  231.  Z    To isolate a single palette entry, you may ZERO the rest.  The cur-
  232.     rent palette entry will remain unchanged.  To zero that one as well,
  233.     move to another and ZERO again.
  234.  
  235. A powerful feature of LOOKER lets you change several palette values while
  236. keeping their relations to each other intact.  A PALETTE LIST will change
  237. in concert; that is, adjust one by five and all change by five.  A list
  238. is signified by a CHECKMARK on the palette table.  Unlisted values work
  239. as before and do not alter the list or the list's settings.
  240.  
  241. Insert    ADD the current palette entry to the list.  If there is no list,
  242.     one will be created.
  243.  
  244. ClrHome START a palette list.  If there is already a list, it is discarded.
  245.  
  246.  Undo    DISCARD a palette list.  You may change values individually again.
  247.  
  248. ________W O R K   B U F F E R   &   S C R E E N ___________________________
  249.  
  250. Any valid command may be pressed while the WORK screen is 'current'.
  251. If the command requires additional information the MAIN screen is forced
  252. current.  An invalid key also forces the MAIN screen and leaves the keystroke
  253. reminder.
  254.  
  255. [cr]    [cr] is a simple toggle to view the WORK buffer.  No changes are
  256.     made to the WORK buffer.
  257.  
  258.  A    The WORK buffer's settings are saved and the ALTERNATE settings are
  259.     used to transform the WORK screen.
  260.  
  261.  D      Makes DITHER the current transformation method and the source image
  262.     is transformed through a DITHERed halftone, adjusted by the Palette
  263.     table settings.  The pattern selection is unchanged (see T).
  264.  
  265.  G    Makes GRAY the current transformation method.  Any palette entry that
  266.     is not zero will be forced near middle gray.  This transformation is
  267.     low contrast; only extremes of light and dark will be discerned.
  268.     GRAY is close to the Desktop's gray but has an entirely different
  269.     texture.  When used in concert with the KEEP buffer, images can be
  270.     constructed by adding darks and clearing highlights.  This is
  271.     LOOKER's slowest transformation.
  272.  
  273.  H      A five step HALFTONE is made current and the WORK screen is trans-
  274.     formed.  This is the fastest transformation.  (Side effect: the
  275.     palette increment is set to 11.  Thus the right/left keys will go
  276.     from black to white in five steps.)
  277.     
  278.  T      TRADE DITHERing pattern for the next in the series of eight, making
  279.     the new pattern current and transforms the WORK screen.
  280.      1) rectangular halftone.
  281.      2) clustering halftone.
  282.      3) vertical.
  283.      4) horizontal fine.
  284.      5) crosshatching.
  285.      6) diagonal.
  286.      7) diagonal.
  287.      8) "TV" -- horizontal coarse. 
  288.  
  289.  X    Make MEZZOTINT the current transformation and performs operation on
  290.     WORK screen.  This method reduces image clarity and is slower than
  291.     Dithering.  The mnemonic, by the way, is XOR in reference to the
  292.     machine language technique used.  Sorry.
  293.  
  294.  0    TRANSFORM the WORK screen using the current settings.
  295.  
  296.  
  297. ________K E E P   B U F F E R   &   S C R E E N ___________________________
  298.  
  299. LOOKER's output image is built in the KEEP buffer.  There is no automatic
  300. creation -- you must choose the pieces and add them.  The two commands that
  301. do this, [+] and [-], change the WORK buffer first.  If the next command is
  302. STRIKE [/], the KEEP buffer will not be changed.  The WORK screen won't be
  303. restored after the STRIKE, facilitating comparisons.
  304.  
  305.  K    You can take a look at the KEEP buffer by pressing [K].  If you
  306.     haven't kept anything, all you will see is a blank screen.  LOOKER
  307.     then waits for any keypress and then returns you to the previous
  308.     screen.  ( MAIN > KEEP > MAIN  or WORK > KEEP > WORK)  Since LOOKER
  309.     doesn't label the WORK and KEEP screens, sometimes you may be con-
  310.     fused.  Just tap the space bar two or three times, until the MAIN
  311.     screen returns.
  312.  
  313.  *    ERASEs the KEEP buffer.  LOOKER forces the main screen current and
  314.     asks you if you're sure.  Pressing [cr or Y] will ERASE, anything 
  315.     else doesn't.  [*] isn't much of a mnemonic, but it does line nicely
  316.     on the keypad with the next two commands.
  317.  
  318.  /    STRIKE [/] lets you try out an ADD or SUBTRACT without making
  319.     a change to the KEEP buffer.  [/] must be the very next command
  320.     after [+] or [-].  Anything else means that you like the results
  321.     and the KEEP buffer will be changed accordingly.
  322.  
  323.  +    The next two build the image.   ADD sets on the black pixels in
  324.     the image.  It copies all of the on pixels in the KEEP buffer to
  325.     the WORK buffer.   The logical operation is an OR.  Thus, if there is
  326.     anything in the KEEP buffer [+] will ADD to it.
  327.  
  328.  -      [-] performs a logical AND of the WORK buffer, in effect, copying
  329.     the white portions of the KEEP buffer.  Think of it as SUBTRACTing,
  330.     but be mindful that you are just cleaning up the whites.  However,
  331.     if you SUBTRACT a light image from very dark image, the effect will
  332.     approach a straight copy of the light image.
  333.     
  334.     Here's a classic bit manipulation table:
  335.  
  336.     [+]    WORK     0     1    [-]    WORK     0     1
  337.         _________________               _________________
  338.         KEEP 0 | 0     1        KEEP 0 | 0     0
  339.              1 | 1     1             1 | 0     1
  340.                |     results               |    results
  341.  
  342.     The WORK buffer is the one that is really changed at first.  If the
  343.     next keypress is not [/] then the KEEP buffer is updated.  To restore
  344.     the WORK buffer, just press [0].
  345.     
  346.     The KEEP buffer, on the other hand, isn't so flexible.  If you change
  347.     it, it stays changed.  Of course, you may ERASE it as often as you
  348.     like; but recreating the old version can get problematic.  Consider
  349.     changes carefully and like an adventure game, when in doubt, SAVE.
  350.  
  351. ________S Y S T E M ________________________________________________________
  352.  
  353.  #    Loads a TEST pattern into the input file buffer.
  354.  
  355. [Help]    Shows a command summary on the MAIN screen which is forced current.
  356.  
  357.  I      INSTALL or alter the DITHER halftone tables.  INSTALL maintains
  358.     its own menu of commands, explained below.
  359.  
  360.  Q    QUIT is safeguarded: you must reply [y] to exit LOOKER.  If you
  361.     discover another way out while the Main screen is not current,
  362.     you will not see the Desktop.  That is, you will have to reboot.
  363.  
  364.  M    MAGNIFY shows a 2x view of the Work screen.  The cursor pad controls
  365.     the image and a ghost box helps orient you.  Press any key other
  366.     than the cursor controls to escape.
  367.  
  368.  V    Prints the current version number of LOOKER, my address for bug
  369.     reports and 'donations'. 
  370.  
  371.  &    If you have a mind to check how LOOKER works, this version includes
  372.     a prompted ILLEGAL.  Immediately trailing the ILLEGAL is a branch
  373.     to the top of the menu.  If you have neglected to run LOOKER from
  374.     a debugger, a smallish row of bombs will speed you to the desktop.
  375.  
  376. ________I N S T A L L _____________________________________________________
  377.  
  378. A single source pixel corresponds to four destination pixels.  Taken by
  379. themselves, these four can create a five-level halftone.  But by applying 
  380. the source to a larger pattern more levels can be attained.  LOOKER uses
  381. an array of values ranging from 0 to 63.  Each value in this Dither table
  382. corresponds to a destination pixel in an 8x8 block of pixels.  The blocks are
  383. mapped to the screen as 50 rows of 80 blocks.  A 64 level halftone is produced
  384. by assuming a direct relation between a source pixel's palette entry, table
  385. value and location.  Different patterns may be introduced to the source image
  386. by variously arranging the values in the Dither (threshold) table.  INSTALL
  387. lets you tailor any of LOOKER's eight tables.
  388.  
  389. The screen shows you the dither table as a grid of numbers, the AUTO-SET
  390. value, and three visual displays -- the complete halftone rainbow and two
  391. single-value squares magnified 2x.  These squares show you what the halftone
  392. would look like if all of the source pixels were the same value.  You may set
  393. this value as you like, using the V command.  The keyboard is remapped, so
  394. the minimal command set is printed as well.
  395.  
  396.     R        RETURN to the LOOKER environment.
  397.    [cr]        Select table to change.
  398.  [arrows]    SELECT the value to change.  The table wraps both vertically
  399.         and horizontally.
  400.   [##]        CHANGE value.  For single digit values, you may either use a
  401.         leading 0 or any non-numerical key to signify "that's all".
  402.         Notice that when the value is accepted, the cursor advances to
  403.         the field to the right.
  404.   F[##]        FILL the dither table with a single value.
  405.   V[##]        Set the VIEW threshold.
  406.     U        UPDATE moves the changes to memory.
  407.  
  408. A 64 level halftone contains the values 0 to 63 with no repeats.  Manually
  409. entering the sequence is a hassle, so several commands are provided to 
  410. facilitate entry.  With exception of the first, all are on the cursor keypad.
  411.  
  412.   A[##]        Set AUTO-INCREMENT value.  A [cr] starts from zero.
  413.  [Help, Undo]    Copy the AUTO value to the current cursor position.
  414.  [Clr Home]    Change the value located by the cursor to the current AUTO
  415.         value then INCREMENT the AUTO value.
  416.   [Help]     Change the value located by the cursor to the current AUTO
  417.         value then DECREMENT the AUTO value.
  418.  
  419. Here's a sample pattern that abandons the halftone concept.
  420.  
  421.      8 32  7 32  6 32  5 32
  422.     32  0 32  7 32  0 32  5
  423.      0 48  0  0  0 48  0 32
  424.      0 63 48 63 48 63  0  6
  425.      0 48  0 48  0 48  0 32
  426.      0 63 48  0 48 63  0  7
  427.      7  0 63  0 63  0  8 32
  428.     32  7  0  0  0  5 32  8
  429.  
  430. Please note:  Work out your pattern on paper first.  Although INSTALL is
  431. somewhat interactive, it is more suited to rapidly reconfiguring a table that
  432. has already been worked out.  In designing it, give thought to the derivative
  433. patterns created by adjacent blocks.  Lastly, INSTALL is more or less slapped
  434. together; for its rough spots, I apologize.
  435.  
  436. _______F O O D   f o r   T H O U G H T___________________________________
  437.  
  438. The basis of LOOKER's transformations is the source image's palette.  The
  439. monochrome replica of the source image is an interpretation of its hue and
  440. saturation.  Photographers are familiar with the distinct differences be-
  441. tween the skills required for color work and those for black and white.
  442. Often an image that 'works' in one form suffers when translated.  On the
  443. other hand, many images can be strengthened by judicious emphasizing.
  444.  
  445. Try XEROXing several photographs.  Try to pick a photograph that won't work
  446. and one that will.  If you can fiddle with the machine's controls, do so.
  447.  
  448. Turn off the color on your TV.  News shows often look good in either mode.
  449. Color movies and series often lose something.
  450.  
  451. "There's no substitute for experience": 
  452.  
  453.    Buy a roll of black and white film and shoot it up.
  454.  
  455.    Do some fast drawings with one crayon.  Then do some with sixteen.
  456.  
  457.    Run LOOKER at every PI1 file you can get your hands on.  A monochrome
  458.    user's biggest surprise is how mediocre many public domain images really
  459.    are -- this emperor often has no clothes.
  460.  
  461. Your run-of-the-mill color slide has about fifty visible levels of tone.  So
  462. does a black and white negative.  Modern photographic papers compress this
  463. scale, yeilding ten different tones in a photograph.  Photographic negatives
  464. have remarkable resolution.  Consider a family reunion and its mandatory 
  465. line-em-up-and-smile.  Even the cheapest camera results in recognizable
  466. renderings, even when enlarged 20 times or more.
  467.  
  468. Photographs in the daily paper usually use 85 dots per inch.  Each of these
  469. dots vary in size, typically labeled 10%, 20% and so on to 100%.  Newsprint
  470. is not the best material on which to print ink, thus only six or seven steps
  471. are actually distinguishable.
  472.  
  473. However those 85 dots per inch on newsprint can readily exceed the capacity
  474. of the ST's screen.  Let's compare 50% grays: 640 pixels in row with half on,
  475. half off equal about 3 3/4 inches of newspaper.  The 400 vertical dots are
  476. about 2 1/4 inches.  Now vary the newsprint's gray down to 10% and up to 90%.
  477. The printed dot gets smaller or bigger.  Not so with the computer screen.
  478. One has to clear more pixels or darken more pixels.  So, as we lighten and
  479. darken, the computer screen loses resolution.  A guesstimate: a dithered LOOKER
  480. image is comparable to 1" x 3/4" high of newspaper.
  481.  
  482. Something to try:  cut a 1" x 3/4" hole in an index card and hunt through the
  483. newspaper for interesting images.
  484.  
  485. ________M I S C E L L A N Y______________________________________________
  486.  
  487. Files in this release include: LOOKER.PRG, LOOKER.DOC, LOOKER.DTH.
  488.  
  489. LOOKER is shareware.  What I would like you to do is to put a real dollar bill
  490. in a envelope and mail it to me.  Put your return address on the envelope.  
  491. I will put the dollar in my wallet and the envelope in a safe place.
  492.  
  493. Individuals may obtain LOOKER's source code (Alcyon AS68) by sending $10, a
  494. disk and a return mailer.  Commercial enterprises are welcome to make me an
  495. offer I can't refuse.
  496.  
  497. LOOKER is a live program, that is "not done".  I will cheerfully correspond
  498. to anyone about LOOKER, its use, its documentation, its future and what a
  499. crummy user interface it has.  Write!
  500.  
  501. Bibliography: 
  502.     Atari ST Internals by K. Gerits, L. Englisch, R. Bruckmann (Abacus)
  503.  
  504.     Hitchhiker's Guide to BIOS (Atari developer's kit)  
  505.         Tip: use a black magic marker to block out the cute shit in
  506.         the LINE-A 'documentation'.
  507.  
  508.     Computer Graphics by Donald Hearn/ M.Pauline Baker (Prentice Hall)
  509.  
  510.     Programming the 68000 by Steve Williams (Sybex)  
  511.         Crappy binding, mathematics nonexistent.  [Rule of thumb
  512.         for judging 68k AL books: multiplication and division
  513.         routines for 32 and 64 bit values.  Most fail.]
  514.  
  515.     Solid Shape Drawing on the Commodore 64 by Richard Rylander
  516.         (Dr. Dobb's Journal, May 1985)
  517.         Sets out the underpinnings to dithered halftones and other
  518.         marvels.  This is a great article.
  519.  
  520.     GRAFCON ST by Patrick Bass (Antic, July 1986)
  521.  
  522.     A Digital Dissolve for Bit-Mapped Graphics Screens by Mike Morton
  523.         (Dr. Dobb's Journal, November 1986)
  524.         
  525. Frederick Hawkins ~ 1020 N. 6th Street ~ Allentown, Penna 18102
  526. July 31, 1987
  527.  
  528. ________G L O S S A R Y__________________________________________________
  529.  
  530. author        One Frederick Hawkins, BFA/MFA in Printmaking from the San
  531.         Francisco Art Institute, whose obsession with computers has
  532.         prevented him from driving a cab.  Still looking for the ideal
  533.         hakker's job.  Credentials: none.  Demerits: likes FORTH,
  534.         hates MODULA2, PASCAL, and C; writes only assembly with com-
  535.         ments.    
  536.     
  537. buffer        A block of memory set aside for a particular purpose.  LOOKER
  538.         has a WORK buffer, a KEEP buffer, two small window buffers
  539.         and an INFILE buffer.  Each buffer consists of the image
  540.         data and some additional information.
  541.  
  542. color        A set of points in the source image that are all alike.
  543.         LOOKER doesn't change the color;; it changes how the color
  544.         is represented.  This is the absolute bones of an image.
  545.  
  546. dither        A technique whereby a destination pixel is set or not,
  547.         depending upon the value assigned to its corresponding source
  548.         pixel and a threshold value.  In LOOKER, the screen is cut
  549.         up into 8 by 8 blocks of 64 pixels, eash assigned a number
  550.         from 0 to 63.  This number is a threshold and the block is
  551.         called the threshold table.  If the source pixel's color is
  552.         darker than the threshold, the destination pixel is set.  By
  553.         variously arranging these threshold tables, different halftone
  554.         patterns are possible.
  555.  
  556. DTH        The semi-obligatory extension.  This is LOOKER's, indicating
  557.         the saved dither tables.   DTH files are made of 8 tables of
  558.         64 bytes.  The tables are not demarked in any way except by
  559.         length.
  560.  
  561. halftone    A method of simulating a gray by interspersing white and
  562.         black dots.  Halftones are always patterned.
  563.  
  564. image        A short word for picture.
  565.  
  566. KEEP        The buffer and screen that is used to assemble LOOKER's
  567.         output.
  568.  
  569. list        A linked set of colors that may be adjusted in concert. 
  570.  
  571. MAIN        The usual desktop screen where text is printed in LOOKER.
  572.         
  573. mezzotint    A random patterning that simulates an etcher's technique.
  574.         This is a low resolution transformation because the random-
  575.         ness adds noise to the image.
  576.  
  577. MICRO        A quarter-size window used to show the palette and magnified
  578.         views.
  579.  
  580. onebuck        A token of your esteem, which, in quantity, may pay for the
  581.         disks used in creating LOOKER.
  582.  
  583. palette        In general, a set of sixteen colors that comprise a low 
  584.         resolution image.  In LOOKER, these colors are converted
  585.         to a gray level, ranging from 0 to 63 (white to black).
  586.  
  587. resolution    Nominally, this is the sharpness or clarity of an image.
  588.         ST usage is based on the number of pixels in a given type of
  589.         image.  Low resolution is made up of 200 rows of 320 points,
  590.         medium resolution has 200 rows of 640 points, and high has
  591.         400 rows of 640 points.  LOOKER maps a single low rez pixel
  592.         onto a 2 by 2 dot of four pixels.
  593.  
  594. screen        The part of a buffer shown to the user and variously changed
  595.         by LOOKER's commands.
  596.  
  597. settings    The gray level assigned to a palette color.  Sometimes refers
  598.         as well to current transform (dithering, mezzotint et al) as
  599.         well.
  600.  
  601. shareware    A poor man's justification for spending so much time. 
  602.  
  603. WORK        A temporary screen buffer.  It must be moved to the KEEP
  604.         buffer to be saved.
  605.